// pages/detail/detail.js
const detail = require("../../models/detail")
const sizeList = require("../../static/shoesSize")
const user = require("../../models/user");
const collect = require("../../models/collect");
const cart = require("../../models/cart");
const paid = require("../../models/paid");

Page({
  data: {
    top: "",
    height: "",
    dialogback: "< 返回",
    lineNum: 1,
    more: "展开↓",
    // 购物弹出层
    show: false,//展示购物详情
    showState: 0,//展示弹出层的状态，点击加入购物车就是0，点击立即购买就是1

    sizeList: [],//可选鞋码
    ifCollect: false,//是否收藏
    shoeID: '',//详情页球鞋id
    value: {},//鞋子详情的数据

    // 加入购物车的数据的信息
    size: 0,//鞋子尺码
    num: 1//购买数
  },
  onLoad: async function (options) {
    // 获取胶囊信息
    var top = wx.getMenuButtonBoundingClientRect().top;
    var height = wx.getMenuButtonBoundingClientRect().height;

    // 是否登录，
    var strongID = wx.getStorageSync('id');
    // 登录了就查看是否收藏,从而设置ifCollect属性
    if (strongID) {
      var userMsg = await user(strongID);
      var collected = await userMsg.data.res[0].collected;
      var state = collected.find(res => {
        return res._id == options.id;
      }) ? true : false;
    }
    if (state) {
      this.setData({
        ifCollect: state
      })
    }
    // 重置选择的码数
    sizeList.forEach(res => {
      res.state = false
    })
    // 使用数据渲染detail页面
    var data = await detail(options.id);
    this.setData({
      value: data.data.res[0],
      shoeID: options.id,
      top,
      sizeList,
      height,
      // size:0
    })
  },

  // 页面功能按键
  // 左上角返回胶囊
  back() {
    wx.navigateBack({
      delta: 1
    });
  },
  // 展开和收起
  more() {
    if (this.data.lineNum == 1) {
      this.setData({
        lineNum: 20,
        more: "收起↑"
      })
    } else {
      this.setData({
        lineNum: 1,
        more: "展开↓"
      })
    }
  },
  // 跳转到购物车
  onClickGotoCart() {
    wx.switchTab({
      url: '../cart/cart'
    });
  },
  // 点击"加入购物车"
  onClickAdd(e) {
    let domID = Number(e.currentTarget.dataset.id);
    var strongID = wx.getStorageSync('id');
    // 登录了就查看是否收藏,从而设置ifCollect属性
    if (strongID) {

      this.setData({
        showState: domID,
        show: true,
      })
    } else {
      wx.navigateTo({
        url: '../login/login'
      });
    }
  },
  // 点击遮罩层关闭
  onClose() {
    this.setData({
      show: false
    })
  },


  // 收藏功能
  async onClick() {
    var strongID = wx.getStorageSync('id');
    // 登录了就实现收藏或取消收藏功能
    if (strongID) {
      let data = await collect(strongID, this.data.shoeID, this.data.ifCollect);
      this.setData({
        ifCollect: !this.data.ifCollect
      })
      wx.showToast({
        title: data.data.msg,
        icon: 'none'
      });
    } else {
      wx.navigateTo({
        url: '../login/login'
      });
    }
  },


  // 下面是购买or加入购物车的功能的实现
  // 进步器
  onStep(e) {
    this.setData({
      num: e.detail
    })
  },
  // 码数选择，单选功能的实现
  onSize(event) {
    this.data.sizeList.forEach(res => {
      if (res.size == event.currentTarget.dataset.id) {
        res.state = !res.state;
      } else {
        res.state = false
      }
    })
    this.setData({
      sizeList: this.data.sizeList,
      size: event.currentTarget.dataset.id//设置选择的鞋码
    })
  },
  // 点击弹出层的确定
  async doIt() {
    if (this.data.size == 0) {
      wx.showToast({
        title: '请选择尺码',
        icon: 'none',
      });
    } else {
      // 选择了尺码才能加入购物车
      // showState==0，点击的是加入购物车
      var strongID = wx.getStorageSync('id');
      if (this.data.showState == 0) {
        let data = await cart(strongID, this.data.shoeID, true, this.data.size, this.data.num);
        wx.showToast({
          title: data.data.msg,
          icon: 'none'
        });
      } else {
        // 购买
        let data = await paid(strongID, this.data.shoeID, true, this.data.size, this.data.num);
        wx.showToast({
          title: data.data.msg,
          icon: 'none'
        });
      }
      this.setData({
        show: false,
      })
    }
  }
})